Для работы с цифровой подписью создайте приложение «DssActivity», в котором используются методы, реализованные в модуле DssAPI.
Перед созданием приложения «DssActivity»:
Настройте цифровую подпись:
DSS идентификатор клиента: 1C996E7F-CC4C-4DFA-B3A3-5BDB5AF6028F;
адрес DSS сервера: dss.cryptopro.ru;
порт: 80;
протокол: HTTP;
таймаут соединения: 30.
Для пользователя API «ilm» установите DSS логин «saprun».
Приложение «DssActivity» состоит из одного экрана, области ввода текста и кнопок:
«GetCertificatesDss». Получение списка доступных сертификатов;
«CreateSignDss». Подпись ячейки;
«GetSignatureListDss». Получение списка подписанных ячеек;
«SignatureDeleteDss». Удаление подписи ячейки.
Примечание. Перед нажатием на кнопку введите идентификатор подписи «2» в область ввода текста.
Область ввода текста содержит идентификатор подписи ячейки.
Для просмотра результата работы приложения используйте интерактивный пример:
Нажмите кнопку «GetCertificatesDss».
public class DssActivity extends AppCompatActivity {
private static final String MY_URL = "http://testmasterfmp.fsight.cloud/";
private static final VersionAPI MY_VERSION_API = VersionAPI.V_1;
private static final String MY_ENVIRONMENT = "Leonid_environment";
private static final String MY_PROJECT = "Leonid_project";
private static final String MY_VERSION = "v1";
private static final String MY_LOGIN = "Leonid";
private static final String MY_PASSWORD = "123123";
private static final String MY_RESOURCE = "GetBudgetPlanning";
public static final String MY_TABLE = "ПланированиеБюджета";
private static final String TAG = "TableStreamActivity";
public static final String DSS_PASSWORD = "Saprun123";
public static final String DSS_CERTIFICATE_ID = "12831";
public static final String DSS_CERTIFICATE_PIN = "123";
private HyperHive hyperHive;
private TextView textView;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dss);
textView = findViewById(R.id.text_view_dss);
editText = findViewById(R.id.edit_text_dss);
editText.setText("1");
Handler uiHandler = new Handler();
hyperHive = new HyperHiveState(getApplicationContext())
.setHostWithSchema(MY_URL)
.setApiVersion(MY_VERSION_API)
.setEnvironmentSlug(MY_ENVIRONMENT)
.setProjectSlug(MY_PROJECT)
.setVersionProject(MY_VERSION)
.setHandler(uiHandler)
.buildHyperHive();
authentication();
}
public void authentication() {
boolean status = hyperHive.authAPI.auth(MY_LOGIN, MY_PASSWORD, true).execute().isOk();
showStatus(status);
}
public void showStatus(boolean status) {
Log.d(TAG, "auth: " + status);
Toast.makeText(this, "auth: " + status, Toast.LENGTH_LONG).show();
}
// Получим список доступных сертификатов
public void getCertificatesDss(View view){
String status = hyperHive.dssAPI
.certificates(DSS_PASSWORD)
.execute();
textView.setText(status);
}
// Подпишем ячейку
public void createSignDss(View view){
String status = hyperHive.dssAPI.sign(MY_RESOURCE,
MY_TABLE,
"{}",
"Номер",
"1",
DSS_PASSWORD,
DSS_CERTIFICATE_ID,
DSS_CERTIFICATE_PIN).execute();
textView.setText(status);
}
// Получим список сигнатур
public void getSignatureListDss(View view){
String status = hyperHive.dssAPI.signs().execute();
textView.setText(status);
}
// Удалим сигнатуру
public void signatureDeleteDss(View view){
long id = Long.parseLong(editText.getText().toString());
String status = hyperHive.dssAPI.remove(id).execute();
textView.setText(status);
}
}
См. также: