// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingpagesRadioButtonSelectCurrentItemLL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingpagesRadioButtonSelectCurrentItemLL( CStifItemParser& /*aItem*/ ) { CDesCArrayFlat* mArr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( mArr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); mArr->AppendL( tom ); mArr->AppendL( jack ); mArr->AppendL( mary ); TInt optin( KZero ); TBuf< KBufSize > buffer( KTestString ); CTestRadioButtonSettingPage* dialog = new (ELeave) CTestRadioButtonSettingPage( &buffer, KOne, EAknCtPopupSettingList, R_EXAMPLE_EDITOR_CONTROL, R_EXAMPLE_SETTING_PAGE, optin, mArr ); CleanupStack::PushL( dialog ); dialog->ConstructL(); dialog->DoSelectCurrentItemL(); CleanupStack::PopAndDestroy( KTwo ); return KErrNone; }
BOOL zzn2_qr(_MIPD_ zzn2 *u) { int j; #ifdef MR_OS_THREADS miracl *mr_mip=get_mip(); #endif if (mr_mip->ERNUM) return FALSE; if (zzn2_iszero(u)) return TRUE; if (size(u->b)==0) return TRUE; if (mr_mip->qnr==-1 && size(u->a)==0) return TRUE; MR_IN(203) nres_modmult(_MIPP_ u->b,u->b,mr_mip->w1); if (mr_mip->qnr==-2) nres_modadd(_MIPP_ mr_mip->w1,mr_mip->w1,mr_mip->w1); nres_modmult(_MIPP_ u->a,u->a,mr_mip->w2); nres_modadd(_MIPP_ mr_mip->w1,mr_mip->w2,mr_mip->w1); redc(_MIPP_ mr_mip->w1,mr_mip->w1); j=jack(_MIPP_ mr_mip->w1,mr_mip->modulus); MR_OUT if (j==1) return TRUE; return FALSE; }
// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingpagesRadioButtonWriteInternalStateLL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingpagesRadioButtonWriteInternalStateLL( CStifItemParser& /*aItem*/ ) { CDesCArrayFlat* mArr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( mArr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); mArr->AppendL( tom ); mArr->AppendL( jack ); mArr->AppendL( mary ); TInt optin( KZero ); TBuf< KBufSize > buffer( KTestString ); CTestRadioButtonSettingPage* dialog = new (ELeave) CTestRadioButtonSettingPage( &buffer, KOne, EAknCtPopupSettingList, R_EXAMPLE_EDITOR_CONTROL, R_EXAMPLE_SETTING_PAGE, optin, mArr ); CleanupStack::PushL( dialog ); dialog->ConstructL(); RDesWriteStream stream; CleanupClosePushL( stream ); HBufC8* hbuf = HBufC8::NewL( KHBufSize ); CleanupStack::PushL( hbuf ); TPtr8 ptr = hbuf->Des(); stream.Open( ptr ); dialog->DoWriteInternalStateL( stream ); stream.CommitL(); stream.Close(); CleanupStack::PopAndDestroy( KFour ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingpagesRadioButtonHandlePointerEventLL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingpagesRadioButtonHandlePointerEventLL( CStifItemParser& /*aItem*/ ) { CDesCArrayFlat* mArr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( mArr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); mArr->AppendL( tom ); mArr->AppendL( jack ); mArr->AppendL( mary ); TInt optin( KZero ); TBuf< KBufSize > buffer( KTestString ); CAknRadioButtonSettingPage* dialog = new (ELeave) CAknRadioButtonSettingPage( &buffer, KOne, EAknCtPopupSettingList, R_EXAMPLE_EDITOR_CONTROL, R_EXAMPLE_SETTING_PAGE, optin, mArr ); CleanupStack::PushL( dialog ); dialog->ConstructL(); TPointerEvent event; event.iType = TPointerEvent::EButton1Down; event.iModifiers = 0; TPoint eventPos( 10, 30 ); event.iPosition = eventPos; event.iParentPosition = eventPos; dialog->HandlePointerEventL( event ); CleanupStack::PopAndDestroy( KTwo ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingpagesRadioButtonHandleListBoxEventLL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingpagesRadioButtonHandleListBoxEventLL( CStifItemParser& /*aItem*/ ) { CDesCArrayFlat* mArr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( mArr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); mArr->AppendL( tom ); mArr->AppendL( jack ); mArr->AppendL( mary ); TInt optin( KZero ); TBuf< KBufSize > buffer( KTestString ); CAknRadioButtonSettingPage* dialog = new (ELeave) CAknRadioButtonSettingPage( &buffer, KOne, EAknCtPopupSettingList, R_EXAMPLE_EDITOR_CONTROL, R_EXAMPLE_SETTING_PAGE, optin, mArr ); CleanupStack::PushL( dialog ); dialog->ConstructL(); dialog->HandleListBoxEventL( dialog->ListBoxControl(), MEikListBoxObserver::EEventItemActioned ); dialog->HandleListBoxEventL( dialog->ListBoxControl(), MEikListBoxObserver::EEventItemClicked ); dialog->HandleListBoxEventL( dialog->ListBoxControl(), MEikListBoxObserver::EEventPenDownOnItem ); CleanupStack::PopAndDestroy( KTwo ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingpagesRadioButtonListBoxControlL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingpagesRadioButtonListBoxControlL( CStifItemParser& /*aItem*/ ) { CDesCArrayFlat* mArr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( mArr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); mArr->AppendL( tom ); mArr->AppendL( jack ); mArr->AppendL( mary ); TInt optin( KZero ); CAknRadioButtonSettingPage* dialog = new (ELeave) CAknRadioButtonSettingPage( R_EXAMPLE_SETTING_PAGE, optin, mArr ); CleanupStack::PushL( dialog ); CAknSetStyleListBox* editorControl = dialog->ListBoxControl(); STIF_ASSERT_NULL( editorControl ); dialog->ConstructL(); editorControl = dialog->ListBoxControl(); STIF_ASSERT_NOT_NULL( editorControl ); CleanupStack::PopAndDestroy( KTwo ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingpagesRadioButtonConstructorL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingpagesRadioButtonConstructorL( CStifItemParser& /*aItem*/ ) { CDesCArrayFlat* mArr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( mArr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); mArr->AppendL( tom ); mArr->AppendL( jack ); mArr->AppendL( mary ); TInt optin( KZero ); CAknRadioButtonSettingPage* dialog = new (ELeave) CAknRadioButtonSettingPage( R_EXAMPLE_SETTING_PAGE, optin, mArr ); CleanupStack::PushL( dialog ); CleanupStack::PopAndDestroy( KTwo ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSettingPages::TestSettingPagesArrayDecoratorSetArrayL // ----------------------------------------------------------------------------- // TInt CTestSDKSettingPages::TestSettingPagesArrayDecoratorSetArrayL( CStifItemParser& /*aItem*/ ) { TAknDesCArrayDecorator* decorator = new( ELeave ) TAknDesCArrayDecorator(); CleanupStack::PushL( decorator ); CDesCArrayFlat* arr = new( ELeave ) CDesCArrayFlat( KSize ); CleanupStack::PushL( arr ); TBuf<KBufSize> tom( KTom ); TBuf<KBufSize> jack( KJack ); TBuf<KBufSize> mary( KMary ); arr->AppendL( tom ); arr->AppendL( jack ); arr->AppendL( mary ); decorator->SetArray( arr ); TBuf<KBufSize> buffer( KTestString ); decorator->SetDecorationText( buffer ); TInt count = decorator->MdcaCount(); STIF_ASSERT_EQUALS( KThree, count ); TInt numberofarray( KZero ); TBool flag = decorator->DecoratedIndex( numberofarray ); STIF_ASSERT_EQUALS( KThree, numberofarray ); STIF_ASSERT_FALSE( flag ); decorator->SetActive( ETrue ); count = decorator->MdcaCount(); STIF_ASSERT_EQUALS( KFour, count ); TPtrC returnText = decorator->MdcaPoint( KZero ); STIF_ASSERT_TRUE( returnText == tom ); CleanupStack::PopAndDestroy( arr ); CleanupStack::PopAndDestroy( decorator ); return KErrNone; }
int main() { int i; FILE *fp; big K,rid,id,w,a,b,n,q1; miracl *mip=mirsys(200,256); for (i=0;i<NPRIMES;i++) { pp[i]=mirvar(0); rem[i]=mirvar(0); } w=mirvar(0); n=mirvar(0); a=mirvar(0); b=mirvar(0); p=mirvar(0); p1=mirvar(0); q1=mirvar(0); K=mirvar(0); lim1=mirvar(0); lim2=mirvar(0); id=mirvar(0); rid=mirvar(0); order=mirvar(0); printf("Enter ID= "); innum(rid,stdin); getprime("trap1.dat"); copy(p,n); getprime("trap2.dat"); multiply(n,p,n); printf("\ncomposite =\n"); cotnum(n,stdout); premult(rid,256,id); while (jack(id,n)!=1) { /* bad identity - id=256*rid+i */ printf("No Discrete Log. for this ID -- incrementing\n"); incr(id,1,id); } getprime("trap1.dat"); copy(p1,q1); pollard(id,b); getprime("trap2.dat"); pollard(id,a); xgcd(p1,q1,K,K,K); subtract(b,a,w); mad(w,K,w,q1,q1,w); if(size(w)<0) add_r(w,q1,w); subdiv(w,2,w); multiply(w,p1,w); add_r(w,a,w); fp=fopen("secret.dat","w"); otnum(rid,fp); cotnum(w,fp); cotnum(n,fp); fclose(fp); printf("\nDiscrete log (secret key) \n"); cotnum(w,stdout); powltr(PROOT,w,n,id); subdiv(id,256,id); otstr(id,mip->IOBUFF); printf("Check Identity= %s\n",mip->IOBUFF); return 0; }
BOOL qnr(const ZZn& x) {redc(x.fn,get_mip()->w1); if (jack(get_mip()->w1,get_mip()->modulus)==-1) return TRUE; return FALSE;}
int jacobi(const ZZn& x) {redc(x.fn,get_mip()->w1); return jack(get_mip()->w1,get_mip()->modulus); }
static void intersect_polish_root (D2<SBasis> const &A, double &s, D2<SBasis> const &B, double &t) { #ifdef HAVE_GSL const gsl_multiroot_fsolver_type *T; gsl_multiroot_fsolver *sol; int status; size_t iter = 0; #endif std::vector<Point> as, bs; as = A.valueAndDerivatives(s, 2); bs = B.valueAndDerivatives(t, 2); Point F = as[0] - bs[0]; double best = dot(F, F); for(int i = 0; i < 4; i++) { /** we want to solve J*(x1 - x0) = f(x0) |dA(s)[0] -dB(t)[0]| (X1 - X0) = A(s) - B(t) |dA(s)[1] -dB(t)[1]| **/ // We're using the standard transformation matricies, which is numerically rather poor. Much better to solve the equation using elimination. Affine jack(as[1][0], as[1][1], -bs[1][0], -bs[1][1], 0, 0); Point soln = (F)*jack.inverse(); double ns = s - soln[0]; double nt = t - soln[1]; as = A.valueAndDerivatives(ns, 2); bs = B.valueAndDerivatives(nt, 2); F = as[0] - bs[0]; double trial = dot(F, F); if (trial > best*0.1) {// we have standards, you know // At this point we could do a line search break; } best = trial; s = ns; t = nt; } #ifdef HAVE_GSL const size_t n = 2; struct rparams p = {A, B}; gsl_multiroot_function f = {&intersect_polish_f, n, &p}; double x_init[2] = {s, t}; gsl_vector *x = gsl_vector_alloc (n); gsl_vector_set (x, 0, x_init[0]); gsl_vector_set (x, 1, x_init[1]); T = gsl_multiroot_fsolver_hybrids; sol = gsl_multiroot_fsolver_alloc (T, 2); gsl_multiroot_fsolver_set (sol, &f, x); do { iter++; status = gsl_multiroot_fsolver_iterate (sol); if (status) /* check if solver is stuck */ break; status = gsl_multiroot_test_residual (sol->f, 1e-12); } while (status == GSL_CONTINUE && iter < 1000); s = gsl_vector_get (sol->x, 0); t = gsl_vector_get (sol->x, 1); gsl_multiroot_fsolver_free (sol); gsl_vector_free (x); #endif { // This code does a neighbourhood search for minor improvements. double best_v = L1(A(s) - B(t)); //std::cout << "------\n" << best_v << std::endl; Point best(s,t); while (true) { Point trial = best; double trial_v = best_v; for(int nsi = -1; nsi < 2; nsi++) { for(int nti = -1; nti < 2; nti++) { Point n(EpsilonBy(best[0], nsi), EpsilonBy(best[1], nti)); double c = L1(A(n[0]) - B(n[1])); //std::cout << c << "; "; if (c < trial_v) { trial = n; trial_v = c; } } } if(trial == best) { //std::cout << "\n" << s << " -> " << s - best[0] << std::endl; //std::cout << t << " -> " << t - best[1] << std::endl; //std::cout << best_v << std::endl; s = best[0]; t = best[1]; return; } else { best = trial; best_v = trial_v; } } } }
static void intersect_polish_root (Curve const &A, double &s, Curve const &B, double &t) { std::vector<Point> as, bs; as = A.pointAndDerivatives(s, 2); bs = B.pointAndDerivatives(t, 2); Point F = as[0] - bs[0]; double best = dot(F, F); for(int i = 0; i < 4; i++) { /** we want to solve J*(x1 - x0) = f(x0) |dA(s)[0] -dB(t)[0]| (X1 - X0) = A(s) - B(t) |dA(s)[1] -dB(t)[1]| **/ // We're using the standard transformation matricies, which is numerically rather poor. Much better to solve the equation using elimination. Matrix jack(as[1][0], as[1][1], -bs[1][0], -bs[1][1], 0, 0); Point soln = (F)*jack.inverse(); double ns = s - soln[0]; double nt = t - soln[1]; if (ns<0) ns=0; else if (ns>1) ns=1; if (nt<0) nt=0; else if (nt>1) nt=1; as = A.pointAndDerivatives(ns, 2); bs = B.pointAndDerivatives(nt, 2); F = as[0] - bs[0]; double trial = dot(F, F); if (trial > best*0.1) // we have standards, you know // At this point we could do a line search break; best = trial; s = ns; t = nt; } #ifdef HAVE_GSL if(0) { // the GSL version is more accurate, but taints this with GPL const size_t n = 2; struct rparams p = {A, B}; gsl_multiroot_function f = {&intersect_polish_f, n, &p}; double x_init[2] = {s, t}; gsl_vector *x = gsl_vector_alloc (n); gsl_vector_set (x, 0, x_init[0]); gsl_vector_set (x, 1, x_init[1]); const gsl_multiroot_fsolver_type *T = gsl_multiroot_fsolver_hybrids; gsl_multiroot_fsolver *sol = gsl_multiroot_fsolver_alloc (T, 2); gsl_multiroot_fsolver_set (sol, &f, x); int status = 0; size_t iter = 0; do { iter++; status = gsl_multiroot_fsolver_iterate (sol); if (status) /* check if solver is stuck */ break; status = gsl_multiroot_test_residual (sol->f, 1e-12); } while (status == GSL_CONTINUE && iter < 1000); s = gsl_vector_get (sol->x, 0); t = gsl_vector_get (sol->x, 1); gsl_multiroot_fsolver_free (sol); gsl_vector_free (x); } #endif }