자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
암호화를 위해서 libsodium을 가지고 비공개키, 공개키를 만들고 암호화하는 작업을 해보고 있습니다.

다행히 델파이 버전이 있어서 windows에서는 그걸 이용해서 암호화하는 것을 성공했습니다만 모바일앱에도 같은 암호화 방법을 쓰려고 하니 기존의 dll이 windows만 지원하고 있어서 사용을 못하더군요.

그래서 고민을 하다가 java jni 버전을 가지고 와서 jar 파일을 만들고 java2op를 가지고 브릿지 파일(Android.JNI.libsodium.pas)까지 만들어서 작동을 시켜봤습니다. 물론 필요한 uses들을 넣었고요.

코드는 아래와 같습니다. 

그런데 신기하게도 SECRETKEY_BYTES값은 받아오는데 randombytes와 같은 함수는 invoke error: method not found를 계속해서 뱉어내는데 해결을 못하고 있습니다. classes.dex 문제인듯 하기도 하고.... 진전이 없습니다.

제가 델파이 초보라 아는게 이 정도인데 도움 부탁 좀 드려도 될까요?

뭐가 잘 못된걸까요?

 

-- 아래 --

 

unit android_sodium;

 

interface

 

uses

  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,

  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,

  Android.JNI.libsodium, Androidapi.Helpers, Androidapi.JNIBridge,

  Androidapi.JNI.JavaTypes, Androidapi.JNI.provider, FMX.helpers.Android,

  FMX.Controls.Presentation, FMX.StdCtrls;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Text1: TText;

    Text2: TText;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.fmx}

 

 

procedure TForm1.Button1Click(Sender: TObject);

var

  sk: TJavaArray<byte>;

  SecByte: integer;

  Sodium : JSodium;

 

begin

//  TJSodium.JavaClass.init;

  SecByte := TJSodiumConstants.JavaClass.SECRETKEY_BYTES;

  Text1.Text := IntToStr(SecByte);

  sk := TJavaArray<byte>.Create(SecByte*2);

  Text2.Text := sk.Items[0].ToString;

 

// Test End

 

// Testing

  TJSodium.JavaClass.randombytes(sk, SecByte*2);

 

 

end;

 

end.

 
번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 39961
공지 유용한 관련 사이트 관리자2 2014.03.20 79504
1872 TabControl1 다지인 적용 방법 문의 [1] 사랑남 2015.03.12 483
1871 XE8 리스트박스(데이터+이미지) 쓰레드 방법으로 구현하는 방법... file 김하나 2015.05.28 483
1870 error - can't bind address: Address already in use. [2] file 그아이네 2021.02.23 483
1869 C++ 빌더 10.4 Data Base Form에 Data Base Component들이 안보임 [2] file 꼬꼬마 2021.03.11 484
1868 RAD Studio 10.3.2 사용 문의입니다. [1] file ip7203 2019.07.26 484
1867 XE8 OS 32bit에서는 FireDAC CreateDB가 잘 되는데 64bit로 빌더를 바꿔서 하면 에라가 발생? 바람돌이 2016.07.12 485
1866 DXE2 에서와 DXE10.2 에서 동작이 다릅니다. [1] file DarkRyu 2017.06.06 485
1865 델파이 10.1 - 안드로이드 서비스 개발시 'activity not found, maybe you are in a service' 에러 [3] 봄이아빠 2017.03.30 485
1864 델파이 IBLite 안드로이드 실행시문제 [1] 스카이 2017.02.22 485
1863 ListBox style에서 text를 추가했는데 livebinding으로 연결이 가능한가요?? [1] 손주영 2016.03.17 485
1862 광고영상 재생 프로그램 강제 종료 오류 관련 문의 [2] file 소란코더 2017.11.24 486
1861 Rio 10.3 에서 FireDAC Interbase 접속문제 [2] file 이치고 2019.12.18 486
1860 listview 에서 런타임에 이미지 넣는부분 [1] 종결자 2019.10.12 486
1859 [XE8 출시세미나] 기존에 유니코드가 아니라 ANSI를 사용하고 있습니다. 델파이 2009 버전 이상에서는 무조건 유니코드를 써야하나요? 업그레이드 하더라도 ANSI를 계속 사용하려면 어떻게 하나요? [1] 관리자 2015.04.30 486
1858 code insight Auto invoke 기능 질문합니다. LYNN 2021.04.12 486
1857 Android 에서 TMemo에 여러개의 줄이 입력되지 않습니다 [5] 지병철 2017.10.26 487
1856 개발모드에서는 발생하지 않는데 구글플레이에서 다운받은 앱은 강제종료되는데 설정 잘못인지요? 스카이 2017.11.11 487
1855 CPort baudrate 질문드려요 [1] 신종훈 2017.12.04 487
1854 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 2 - Exercise 4 [2] 관리자 2016.04.15 487
1853 웹브라우저로 네이버 웨일을 사용할 수 있는 방법을 알려주세요. [1] 미스터리 2020.09.21 487