/// <summary>
/// This type denotes Session Login Method used in OpenSession
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class LoginMethod
{
/// <summary>No login data is provided.</summary>
/// <summary>
/// This type denotes Value parameter
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum TEFValueType : UInt32
{
/// <summary>The Parameter is a ValueType tagged as input.</summary>
/// This type denotes TempMemoryReference parameter
/// describing a region of memory which needs to be temporarily registered for the duration of the operation.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum TEFTempMemoryType : UInt32
{
/// <summary>The Parameter is a TempMemoryType and is tagged as input.</summary>
/// <summary>
/// This type denotes SharedMemoryReference parameter
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum TEFRegisteredMemoryType : UInt32
{
/// <summary>The Parameter is a Registered Memory Reference that refers to the entirety of its parent Shared Memory block.</summary>
/// <summary>
/// This type denotes SharedMemory access direction
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
[Flags]
public enum SharedMemoryFlags : UInt32
{
/// This type denotes a Shared Memory block which has either been registered
/// with the implementation or allocated by it.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public sealed class SharedMemory
{
internal Interop.TEEC_SharedMemory shm;
/// <summary>
/// This property represents shared memory size in bytes.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public UInt32 Size
{
get { return shm.size; }
/// <summary>
/// This property represents start address of shared memory block.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IntPtr Address
{
get { return shm.buffer; }
/// This function makes a copy and is designed for convenient operations on small buffers.
/// For large buffers direct address should be used.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="data">Source data buffer to copy data from</param>
/// <param name="dstOffs">Starting offset in source shared memory</param>
/// <exception cref="InvalidOperationException">The operation is invalid.</exception>
/// This function makes a copy and is designed for convenient operations on small buffers.
/// For large buffers direct address should be used.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="data">Destination data buffer to copy data into</param>
/// <param name="dstOffs">Starting offset in destination shared memory</param>
/// <exception cref="InvalidOperationException">The operation is invalid.</exception>
/// also used for cancellation of operations, which may be desirable even if no payload is passed.
/// Parameters are used to exchange data between CA and TA
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public abstract class Parameter
{
internal Parameter(uint t)
/// <summary>
/// This type defines a template for parameter types.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public abstract class BaseParameter<TEnum> : Parameter where TEnum : struct, IComparable, IFormattable, IConvertible // as close to Enum as possible
{
internal BaseParameter(TEnum t) : base((uint)(object)t)
/// <summary>
/// This property represents access type to this parameter.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public TEnum Type { get; }
}
/// <summary>
/// This type defines a temporary memory reference.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public sealed class TempMemoryReference : BaseParameter<TEFTempMemoryType>
{
/// <summary>
/// Constructs Prameter object which holds info about temporary memory copied to/from TA
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="buffer">Address of allocated memory buffer</param>
/// <param name="size">Size of the buffer</param>
/// <param name="type">Kind of access allowed for TA <see cref="TEFTempMemoryType"/></param>
/// <summary>
/// This property represents memory address of buffer.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IntPtr Buffer { get; }
/// <summary>
/// This property represents size of buffer.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint Size { get; }
};
/// <summary>
/// This type defines a memory reference that uses a pre-registered or pre-allocated Shared Memory block.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public sealed class RegisteredMemoryReference : BaseParameter<TEFRegisteredMemoryType>
{
/// <summary>
/// Constructs Prameter object which holds info about registered memory shared with TA
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="parent">Shared memory - registered or allocated</param>
/// <param name="size">Size of the buffer part</param>
/// <param name="offset">Offset of buffer in shared memory</param>
/// <summary>
/// This property represents SharedMemory that is referred to.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public SharedMemory Parent { get; }
/// <summary>
/// This property represents size (in bytes) of SharedMemory.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint Size { get; }
/// <summary>
/// This property represents offset (in bytes) from the begin of SharedMemory.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint Offset { get; }
};
/// This type defines a parameter that is not referencing shared memory, but carries instead small raw data
/// passed by value.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public sealed class Value : BaseParameter<TEFValueType>
{
/// <summary>
/// Constructs Prameter object which holds info about int values copied to/from TA
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="a">User paramter A</param>
/// <param name="b">User paramter B</param>
/// <param name="type">Kind of access allowed for TA <see cref="TEFValueType"/></param>
/// <summary>
/// This property represents unsigned integer A.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint A { get; }
/// <summary>
/// This property represents unsigned integer B.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint B { get; }
};
/// <summary>
/// This type denotes a TEE Session, the logical container linking a Client Application with a particular Trusted Application.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public sealed class Session
{
private Interop.TEEC_Context context;
/// This function closes a Session which has been opened with a Trusted Application.
/// All Commands within the Session MUST have completed before this function can be called.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <privilege>http://tizen.org/privilege/tee.client</privilege>
/// <privlevel>partner</privlevel>
/// <feature>http://tizen.org/feature/security.tee</feature>
/// Trusted Application's protocol.
/// There can be up to four Parameter objects given in the <paramref name="paramlist"/> array
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="commandID">The command</param>
/// <param name="paramlist">The array of parameters</param>
/// <privilege>http://tizen.org/privilege/tee.client</privilege>
/// <summary>
/// Asynchronous version of InvokeCommand
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="commandID">The command</param>
/// <param name="paramlist">The array of parameters</param>
/// <param name="token">The token for task manipulation</param>
/// <summary>
/// This type denotes a TEE Context, the main logical container linking a Client Application with a particular TEE.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public sealed class Context : IDisposable
{
private Interop.TEEC_Context context;
/// This function (constructor) initializes a new TEE Context, forming a connection between this Client Application and the
/// TEE identified by the string identifier name (empty or null name denotes default TEE).
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="name">The TEE name</param>
/// <privilege>http://tizen.org/privilege/tee.client</privilege>
/// <privlevel>partner</privlevel>
/// <summary>
/// This function implements IDisposable interface
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <privilege>http://tizen.org/privilege/tee.client</privilege>
/// <privlevel>partner</privlevel>
/// <feature>http://tizen.org/feature/security.tee</feature>
/// The target Trusted Application is identified by a UUID passed in the parameter destination.
/// There can be up to four Parameter objects given in the {paramlist} array
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="destination">The UUID of destination TA</param>
/// <param name="loginMethod">The authentication algorithm <see cref="LoginMethod" /></param>
/// <param name="connectionData">The data to be verified by given login method</param>
/// <summary>
/// @see OpenSession(Guid destination, uint connectionMethod, byte[] connectionData, Parameter[] paramlist, CancellationToken token)
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="destination">The UUID of destination TA</param>
/// <returns>Returns opened session</returns>
/// <privilege>http://tizen.org/privilege/tee.client</privilege>
/// <exception cref="UnauthorizedAccessException">Thrown when application does not have privilege to access this method.</exception>
/// <exception cref="NotSupportedException">The required feature is not supported.</exception>
/// <exception cref="InvalidOperationException">The operation is invalid.</exception>
- /// <exception cref="ArgumentException">The argument is wrong</exception>
public Session OpenSession(Guid destination)
{
Session ses = new Session(context);
/// Asynchronous version of OpenSession
/// @see OpenSession(Guid destination, uint connectionMethod, byte[] connectionData, Parameter[] paramlist, CancellationToken token)
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="destination">The UUID of destination TA</param>
/// <param name="loginMethod">The authentication algorithm <see cref="LoginMethod" /></param>
/// <param name="connectionData">The data to be verified by given login method</param>
/// Asynchronous version of OpenSession
/// @see OpenSession(Guid destination, uint connectionMethod, byte[] connectionData, Parameter[] paramlist, CancellationToken token)
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="destination">The UUID of destination TA</param>
/// <param name="token">The token for task manipulation</param>
/// <returns>Returns Task executing session open in backgroung</returns>
/// <exception cref="UnauthorizedAccessException">Thrown when application does not have privilege to access this method.</exception>
/// <exception cref="NotSupportedException">The required feature is not supported.</exception>
/// <exception cref="InvalidOperationException">The operation is invalid.</exception>
- /// <exception cref="ArgumentException">One of arguments is wrong</exception>
public async Task<Session> OpenSessionAsync(Guid destination, CancellationToken token = default(CancellationToken))
{
Task<Session> task = Task<Session>.Factory.StartNew(() =>
/// the scope of the specified Context, in accordance with the parameters.
/// The input <paramref name="memaddr"/> MUST point to the shared memory region to register
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="memaddr">The address of shared memory</param>
/// <param name="size">The size of shared memory</param>
/// <param name="flags">The flags describing access modes (Input and/or Output)</param>
/// This function allocates a new block of memory as a block of Shared Memory within the scope of the
/// specified Context, in accordance with the parameters.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="size">The size of shared memory</param>
/// <param name="flags">The flags describing access modes (Input and/or Output)</param>
/// <returns>Returns SharedMemory handler</returns>
/// underlying memory from the TEE, but the memory region will stay available to the Client Application for
/// other purposes as the memory is owned by it.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="shm">The shared memory object returned by RegisterSharedMemory or AllocateSharedMemory</param>
/// <privilege>http://tizen.org/privilege/tee.client</privilege>
/// <privlevel>partner</privlevel>