public static abstract class

UcmAgentProviderImpl.UcmAgentMacSpi

extends MacSpi
implements UcmAgentProviderImpl.UcmAgentSpiProperty
java.lang.Object
   ↳ javax.crypto.MacSpi
     ↳ com.samsung.android.knox.ucm.plugin.agent.UcmAgentProviderImpl.UcmAgentMacSpi

Class Overview

This class provide API's extended from MacSpi If vendor want to support Mac as JCE, plugin application should implement this Spi and add as Service Provider.

Since
API level 37
KNOX 3.10

Summary

[Expand]
Inherited Constants
From interface com.samsung.android.knox.ucm.plugin.agent.UcmAgentProviderImpl.UcmAgentSpiProperty
Public Constructors
UcmAgentMacSpi()
Public Methods
abstract byte[] engineDoFinal()
Standard Mac API.
abstract void engineInit(Key key, AlgorithmParameterSpec params)
Standard Mac API.
abstract void engineUpdate(byte[] input, int offset, int length)
Standard Mac API.
Bundle getProperty()
API to get the properties set by UCM framework during SPI call.
void setErrorCode(int error)
API to set the error code(if any) which will be forwarded to calling application via UCM framework.
Protected Methods
int engineGetMacLength()
Standard Mac API.
void engineReset()
Standard Mac API.
void engineUpdate(byte input)
Standard Mac API.
[Expand]
Inherited Methods
From class javax.crypto.MacSpi
From class java.lang.Object
From interface com.samsung.android.knox.ucm.plugin.agent.UcmAgentProviderImpl.UcmAgentSpiProperty

Public Constructors

public UcmAgentMacSpi ()

Since: API level 37

Public Methods

public abstract byte[] engineDoFinal ()

Since: API level 37

Standard Mac API.

Since
API level 37
KNOX 3.10

public abstract void engineInit (Key key, AlgorithmParameterSpec params)

Since: API level 37

Standard Mac API.

Since
API level 37
KNOX 3.10

public abstract void engineUpdate (byte[] input, int offset, int length)

Since: API level 37

Standard Mac API.

Since
API level 37
KNOX 3.10

public Bundle getProperty ()

Since: API level 37

API to get the properties set by UCM framework during SPI call.

Returns
  • Bundle calling application information
Usage

To perform crypto operation properly, plugin application should know caller information. Plugin application can use this API to get caller user Id, resource Id, caller application Uid and owner Id

 public class SimpleUcmAgentCipherSpi extends UcmAgentProviderImpl.UcmAgentCipherSpi {
   public SimpleUcmAgentCipherSpi(Context ctx,..) {
     Bundle bundle = getProperty();
     int userId = bundle.getInt(UcmAgentSpiProperty.KEY_USER_ID, -1));
     int resourceId = bundle.getInt(UcmAgentSpiProperty.KEY_RESOURCE_ID , -1));
     int callerId = bundle.getInt(UcmAgentSpiProperty.KEY_CALLER_UID , -1));
   }
 }   
 
Since
API level 37
KNOX 3.10
Multiuser Environment
Global Scope

public void setErrorCode (int error)

Since: API level 37

API to set the error code(if any) which will be forwarded to calling application via UCM framework.

 public class SimpleUcmAgentSignatureSpi extends UcmAgentProviderImpl.UcmAgentSignatureSpi {
   public void engineInitSign(PrivateKey privateKey, SecureRandom random) {
     ...
     setErrorCode(UcmAgentService.ERROR_EMPTY_PARAMETER);
     ...
   }
 }
 

Parameters
error Error code
Since
API level 37
KNOX 3.10
Multiuser Environment
Global Scope

Protected Methods

protected int engineGetMacLength ()

Since: API level 37

Standard Mac API.

Since
API level 37
KNOX 3.10

protected void engineReset ()

Since: API level 37

Standard Mac API.

Since
API level 37
KNOX 3.10

protected void engineUpdate (byte input)

Since: API level 37

Standard Mac API.

Since
API level 37
KNOX 3.10